/*    验证函数  
      groupName为标识输入框，若是需要相同验证groupName-<$>，$从0开始，propName为使用哪种验证规则
      在view成中需要绑定data-group="<groupName>",data-prop="<propName>"
      在Page.data中需要inputObject={<所有需要验证的input的gruopName>}，
*/
module.exports = function(data, option){
  var reg = /^\/.*((\/)|(\/g))$/;                   //符合正则的匹配
  var useSelf = false;                              //是否使用自定义option
  var optionFormat = false;                         //自定义option正则格式是否正确；
  var nextJudge = false;                            //是否过了格式校验；
  //option格式为json，option.name，option.reg
  if(option.name&&option.reg){
    useSelf = true;
    reg.test(option.reg)?(optionFormat = true):(optionFormat=false);
  } else if (typeof(option)=='string'){
    useSelf = false;
  } else {
    console.log("option格式设置不正确，option为特定的字符串或以json格式组成的option.name和option.reg");
  }
  if(useSelf&&optionFormat){                                       //option为正则则使用option配置
    var rule = option.reg;
    rule.test(data)?(nextJudge=true):(nextJudge=false);
    if(nextJudge){
      return true;
    } else {
      return option.name+"输入有误，请重新输入"
    }
  } else if(useSelf&&!optionFormat){
    console.log("自定义的正则option.reg不符合正则格式")
  } else{
    switch(option){
    case 'qq':                                       //QQ号
      var rule = /[1-9][0-9]{4,}/;
      rule.test(data)?(nextJudge=true):(nextJudge=false);
      if(nextJudge){
        return true;
      } else {
        return "QQ号输入有误，请确认输入的QQ号为5到11位数字"
      }
      break;
    case 'email':                                    //邮箱
      var rule = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/
      rule.test(data)?(nextJudge=true):(nextJudge=false);
      if(nextJudge){
        return true;
      } else {
        return "您输入的邮箱号格式有误"
      }
      break;
    case 'phone':                                    //手机号
      var rule = /^1[3|4|5|7|8][0-9]\\d{8}$/;
      rule.test(data)?(nextJudge=true):(nextJudge=false);
      if(nextJudge){
        return true;
      } else {
        return "您输入的手机号格式有误，目前支持以13,14,15,17,18开头的手机号"
      }
      break;
    case 'idcard':                                   //身份证
      var rule = /^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/;
      rule.test(data)?(nextJudge=true):(nextJudge=false);
      if(nextJudge){
        return true;
      } else {
        return "您输入的身份证格式有误，请更正后再提交"
      }
      break;
    case 'weight':                                   //体重
      var rule = /(^\d{2}(\.\d){0,1}$)|(^\d{2}(\.\d){0,1}kg$)/;
      rule.test(data)?(nextJudge=true):(nextJudge=false);
      if(nextJudge){
        if(parseInt(data)<15||parseInt(data)>60){
          return "体重栏仅支持输入15kg~60kg，如果不在此范围内，请联系客服人员取得帮助。"
        }
        return true;
      } else {
        return "您输入的体重格式有误，请输入正确的体重(kg)，如体重50kg可输入50"
      }
      break;
    case 'height':                                   //身高
      var rule = /(^\d{2,3}(\.\d){0,1}$)|(^\d{2,3}(\.\d){0,1}cm$)/
      rule.test(data)?(nextJudge=true):(nextJudge=false);
      if(nextJudge){
        if(parseInt(data)<80||parseInt(data)>190){
          return "身高栏仅支持输入80cm~190cm，如果不在此范围内，请联系客服人员取得帮助。"
        }
        return true;
      } else {
        return "您输入的体重格式有误，请输入正确的体重(kg)，如体重50kg可输入50"
      }
      break;
    case 'age':                                      //年龄
      var rule = /(^\d{1,2}(\.\d){0,1}$)|(^\d{1,2}(\.\d){0,1}岁$)/
      rule.test(data)?(nextJudge=true):(nextJudge=false);
      if(nextJudge){
        if(parseInt(data)<5||parseInt(data)>14){
          return "年龄栏仅支持输入5~14岁，如果不在此范围内，请联系客服人员取得帮助。"
        }
        return true;
      } else {
        return "您输入的体重格式有误，请输入正确的体重(kg)，如体重50kg可输入50"
      }
      break;
    case 'name':                                     //中文名
      var rule = /[^\u4e00-\u9fa5]/;
      rule.test(data)?(nextJudge=true):(nextJudge=false);
      if(nextJudge){
        return true;
      } else {
        return "姓名栏仅支持中文输入，如需帮助，请联系客服人员。"
      }
      break;
    default:
      console.log('表单校验出现错误')
    }
  }
}